import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
enum Direccion {IZQ, DER};

/**
 * Escribe una descrición de la clase Pirata aquí.
 * 
 * @autor Andrés Cruz Santaigo
 * @versión 22/10/13
 */
public class Pirata extends Actor
{
    protected Direccion dir; //Dirección del Pirata
    protected SimpleTimer timer;
    protected int porcentaje; //Porcentaje de Vida
    private boolean actua; // Bandera para Verificar que no esté Paralizado
    SimpleTimer tiempoParalisis; //Tiempo de Parálisis

    /**
     * Constructor de Pirata
     * @param unaDireccion Dirección del chapulín
     */
    public Pirata(int unaDireccion)
    {
        if(unaDireccion ==0)
        {
            dir=Direccion.IZQ;
            this.getImage().mirrorHorizontally();
        }
        else 
        if(unaDireccion ==1)
            dir=Direccion.DER;
        porcentaje=100;
        actua=true;
        tiempoParalisis = new SimpleTimer();
    }  

    /**
     * Act - hace lo que Espadachin quiere hacer. Este método se llama "cuando quiera" o whenever
     * los botones 'Actuar or 'Ejecutar' son presionados en el entorno.
     */
    public void act() 
    {
        if(actua)
            ataca();
        else
        {
            if(tiempoParalisis.millisElapsed() > 3000)
            {
                actua=true;
                tiempoParalisis.mark();
            }
        }
    }   
    
    /**
     * Pregunta Dirección
     * @return dir Direcciónn del Chapulín
     */
    public Direccion getDireccion()
    {
        return dir;
    }

    /**
     * Retorna Porcentaje de Vida del Chapulín 
     * @return porcentje Porcentaje de la Vida Actual
     */
    public int getPorcentaje()
    {
        return porcentaje;
    }

    /**
     * Decrementa Porcentja de la Vida Actual 
     */
    public void decrementaPorcentaje()
    {
        porcentaje-=20;
    }
    
    /**
     * Decrementa Porcentaje de la Vida Actual
     * @param valor Porcentaje de Vida Actual
     */
    public void decrementaPorcentaje(int valor)
    {
        porcentaje-=valor;
    }

    /**
     * Activa Actuación del Pirata
     */
    public void activaActua()
    {
        actua=true;
    }

    
    /**
     * Desactiva Actuación del Pirata
     */
    public void desactivaActua()
    {
        tiempoParalisis.mark();
        actua=false;
    }
    /**
     * Ataca
     */
    public void ataca(){}
}
